
package gui;

import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
 * Ventana auxiliar para mostrar un texto.
 * @author Miguel Angel Diaz Calvo.
 * @author David Martin Moreno.
 */
public class Ventana extends JDialog {
    
	/**
	 * Boton cerrar.
	 */
	private JButton jButtonCerrar;
    
	/**
	 * Scroll del texto.
	 */
	private JScrollPane jScrollTexto;
	
	/**
	 * Area de texto.
	 */
    private JTextArea jText;
    
    /**
	 * SerialVersionUID autogenerado.
	 */
	private static final long serialVersionUID = -6248879348890155449L;
	
	/** 
     * Crea un nuevo formulario Ventana.
     * @param mensaje Texto a mostrar.
     * @param padre Ventana desde la que se llama a esta clase.
     */
    public Ventana(String mensaje, Frame padre) {
    	super(padre, "Manual Maquina-P",true);
        initComponents();
        jText.setText(mensaje);
        // Centrar ventana en pantalla
        try {
            Dimension ventana = Toolkit.getDefaultToolkit().getScreenSize();
            this.setLocation(ventana.width/2-this.getWidth()/2, ventana.height/2-this.getHeight()/2);
        } catch (Exception e) {
            this.setLocation(0,0);
        }
        setVisible(true);
    }
    
    /**
     * Crea e iniciliza todos los componentes de la ventana.
     */
    private void initComponents() {
    	setTitle("Manual Maquina-P");
        jScrollTexto = new JScrollPane();
        jText = new JTextArea();
        jButtonCerrar = new JButton();
        
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent evt) {
                oyenteRedimensionarForm(evt);
            }
        });

        jText.setColumns(20);
        jText.setRows(5);
        jText.setEditable(false);
        jScrollTexto.setViewportView(jText);

        jButtonCerrar.setText("Cerrar");
        jButtonCerrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                oyenteJButtonCerrar(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jScrollTexto, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE)
                    .add(jButtonCerrar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 397, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jScrollTexto, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 404, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jButtonCerrar)
                .addContainerGap())
        );
        pack();
    }
    
    /**
     * Oyente de la redimension de la ventana.
     * @param evt Evento a capturar.
     */
    private void oyenteRedimensionarForm(java.awt.event.ComponentEvent evt) {
        if (getWidth()<429)
            setSize(429,getHeight());
        if (getHeight()<490)
            setSize(getWidth(), 490);
    }
    
    /**
     * Oyente del boton cerrar.
     * @param evt Evento a capturar.
     */
    private void oyenteJButtonCerrar(java.awt.event.ActionEvent evt) {
    	dispose();
    }
    
}
